import pymysql  # 导入 pymysql 进行 MySQL 交互

# 数据库连接配置
DB_CONFIG = {
    "host": "localhost",  # MySQL 服务器地址（本机）
    "user": "root",  # 数据库用户名
    "password": "1234",  # 数据库密码
    "port": 3306,  # MySQL 端口（默认 3306）
    "database": "face_text",  # 连接的数据库名称
    "charset": "utf8mb4"  # 解决中文乱码
}


def insert_user(name,user_password):
    """向 users 表插入用户数据"""
    connection = pymysql.connect(**DB_CONFIG)
    cursor = connection.cursor()

    sql = "INSERT INTO users (name, user_password) VALUES (%s, %s);"
    cursor.execute(sql, (name, user_password))  # 执行 SQL 语句
    connection.commit()  # 提交事务

    print(f"用户 {name} 注册成功！")
    cursor.close()
    connection.close()


def check_login(name, user_password):
    """检查用户名和密码是否匹配"""
    # 连接数据库
    connection = pymysql.connect(**DB_CONFIG)
    cursor = connection.cursor()

    # 查询数据库中是否存在匹配的用户名和密码
    sql = "SELECT COUNT(*) FROM users WHERE name = %s AND user_password = %s;"
    cursor.execute(sql, (name, user_password))
    result = cursor.fetchone()  # 获取查询结果

    if result[0] > 0:  # COUNT(*) 结果大于0，表示存在该用户
        print("登录成功！")
        return True
    else:
        print("用户名或密码错误！")
        return False

def check_user_exists(username):
    """检查用户名是否已存在"""
    # 连接数据库
    connection = pymysql.connect(**DB_CONFIG)
    cursor = connection.cursor()

    # 查询数据库中是否存在该用户名
    sql = "SELECT COUNT(*) FROM users WHERE name = %s;"
    cursor.execute(sql, (username,))
    result = cursor.fetchone()  # 获取查询结果

    if result[0] > 0:  # COUNT(*) 结果大于 0，表示用户已存在
        print("用户已存在！")
        return result[0]

    else:
        print("用户不存在！")
        return None

def insert_login_record(user_id):
    """向 login_records 表插入登录记录"""
    connection = pymysql.connect(**DB_CONFIG)
    cursor = connection.cursor()

    sql = "INSERT INTO login_records (user_id) VALUES (%s);"
    cursor.execute(sql, (user_id,))
    connection.commit()

    print(f"用户 ID {user_id} 的登录记录插入成功！")
    cursor.close()
    connection.close()


def fetch_users():
    """查询 users 表中的所有用户"""
    connection = pymysql.connect(**DB_CONFIG)
    cursor = connection.cursor()

    sql = "SELECT * FROM users;"
    cursor.execute(sql)
    results = cursor.fetchall()

    print("所有用户信息：")
    for row in results:
        print(row)

    cursor.close()
    connection.close()


if __name__ == "__main__":
    # 插入用户数据
    # insert_user("张三",123)
    # insert_user("李四",123)
    #
    # # 插入登录记录
    # insert_login_record(1)
    # insert_login_record(2)

    # 查询用户数据
    fetch_users()
